/* 3、合并字符串
给出2个英文小写字符串，依次字符交叉合并成新字符串，多出的部分追加在新字符串末尾。
例如：
abc、xyz => axbycz
 ab、xyz => axbyz
 abcd、xy => axbycd
*/

package main

import "fmt"

// 纵向遍历 单指针
func mixString(m, n string) string {
	lenM := len(m)
	lenN := len(n)
	var finalLen int = lenM
	if lenM < lenN {
		finalLen = lenN
	}
	s := make([]byte, lenM+lenN)
	left := 0
	for i := 0; i < finalLen; i++ {
		if i < lenM {
			s[left] = m[i]
			left++
		}
		if i < lenN {
			s[left] = n[i]
			left++
		}
	}
	return string(s)
}

func main() {
	fmt.Println(mixString("ab", "cedefa"))
	fmt.Println(mixString("abcd", "xy"))
	fmt.Println(mixString("abc", "xyz"))
	fmt.Println(mixString("abc", ""))
	fmt.Println(mixString("", "abc"))
}
